package com.demo.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;

/***
 * 拦截器(Interceptor)使用步骤:
 *      1.写一个类实现HandlerInterceptor接口
 *      2.写一个类
 *          实现   WebMvcConfigurer接口  或者  继承WebMvcConfigurationSupport
 *          重写   addInterceptors 方法
 *          调用   registry.addInterceptor()方法将HandlerInterceptor接口的实现类添加进去
 *
 *     HandlerInterceptor：
 *          1. preHandle         controller 执行之前调用
 *          2. postHandle        controller 执行之后页面渲染之前调用
 *          3. afterCompletion   页面渲染之后调用，一般用于资源清理的操作
 *
 * ------------------------------------
 *
 * 异常处理：
 *   去除SpringBoot默认的异常处理页面：@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)
 *
 *  方法一：
 *   自定义页面（类似于Web.xml里的错误配置）
 *      1.写好对应的错误码对应的页面
 *      2.写一个类实现ErrorPageRegistrar并将其注入到Spring容器
 *      3.在registerErrorPages方法中添加错误页面：registry.addErrorPages();
 *      注：要关掉拦截器。
 *
 *  方法二：
 *    全局异常处理：
 *      1.写一个类，需要加上@ControllerAdvice注解
 *      2.写一个方法，需要加上 @ExceptionHandler(value = Exception.class) 注解，在该方法里面处理异常
 */
@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);

    }
}
